set theory programming